package com.dianshang.thymeleaf;

import org.thymeleaf.TemplateEngine;
import org.thymeleaf.context.Context;
import org.thymeleaf.templatemode.TemplateMode;
import org.thymeleaf.templateresolver.ClassLoaderTemplateResolver;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.util.HashMap;
import java.util.Map;

/**
 * 模板引擎：hello_world.html必须在resources文件下
 * model>map————>th:text(${model.map})(仔细思考)
 */
public class ThymeleafDemo {

    public static void main(String[] args) {
        // 1、创建一个thymeleaf的模板引擎
        TemplateEngine engine = new TemplateEngine(); // 创建模板引擎
        // 创建一个视图解析器
        ClassLoaderTemplateResolver resolver = new ClassLoaderTemplateResolver(); // 模板解析器
        resolver.setTemplateMode(TemplateMode.HTML); // 模板模型
        resolver.setSuffix(".html"); // 后缀
        engine.setTemplateResolver(resolver);
        // 2、根据模板+map进行渲染,并输出一个静态的页面
        Context context = new Context(); // 上下文
        Map<String,Object> map = new HashMap<>(); // 创建数据模型
        map.put("zhaoyu", "赵宇"); // 将数据封装到map中,进行渲染
        context.setVariables(map);
        File file = new File("F:/"+"thymeleafDemo"+".html"); // ("F:/"+"thymeleafDemo"+".html") == ("F:/"+"thymeleafDemo.html");
        // 判断生成的静态页面所在的目录是否存在,不存在就创建
        if (!file.getParentFile().exists()){
            file.getParentFile().mkdirs();
        }
        try {
            // PrintWriter printWriter = new PrintWriter("thymeleafDemo.html", "utf-8"); // "thymeleafDemo.html"：创建在聚合工程里面,跟pom.xml同级
            PrintWriter printWriter = new PrintWriter(file, "utf-8");
            engine.process("hello_world",context,printWriter);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
    }

}